/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package calculos;

import model.Paciente;
import model.ResultadoAvaliacao;

/**
 *
 * @author Kdc
 */
public class MetodoIMC implements MetodoCalculo {

    private double imc;

    @Override
    public void calcula(Paciente p) {

        this.imc = Math.abs(p.getPeso() / (p.getAltura() * p.getAltura()));
        classifica(p, imc);
    }

    @Override
    public void classifica(Paciente p, double pImc) {

        String resultado = "INDISPONIVEL";

        if (p.getSexo() == 'M') {
            if (pImc < 20.7) {
                resultado = "Abaixo do Peso";
            } else if (pImc >= 20.7 && pImc < 26.4) {
                resultado = "No Peso Normal";
            } else if (pImc >= 26.4 && pImc < 27.8) {
                resultado = "Marginalmente Acima do Peso";
            } else if (pImc >= 27.8 && pImc < 31.1) {
                resultado = "Acima do Peso Ideal";
            } else if (pImc >= 31.1) {
                resultado = "Obeso";
            }
        } else {
            if (pImc < 19.1) {
                resultado = "Abaixo do Peso";
            } else if (pImc >= 19.1 && pImc < 25.8) {
                resultado = "No Peso Normal";
            } else if (pImc >= 25.8 && pImc < 27.3) {
                resultado = "Marginalmente Acima do Peso";
            } else if (pImc >= 27.3 && pImc < 32.3) {
                resultado = "Acima do Peso Ideal";
            } else if (pImc >= 32.3) {
                resultado = "Obeso";
            }
        }

        p.addResultado(new ResultadoAvaliacao(pImc, resultado, "IMC"));
    }

}
